﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category0
{
  public class MT096 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;

    [Description("Fin Copy Message")]
    public MT096.FinCopyMessageClass FinCopyMessage
    {
      get
      {
        return new MT096.FinCopyMessageClass((SwiftElement) this, 0, false);
      }
    }

    public MT096()
      : base(true)
    {
    }

    public MT096(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT096.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
        MT096.MessageDefinition = new SwiftMessageDefinition("MT096", "FIN Copy to Central Institution Message");
      MT096.U0002 = new SwiftTagSequenceDefinition("FinCopyMessage", "Fin Copy Message");
      MT096.MessageDefinition.Elements.Add((SwiftDefinitionElement)MT096.U0002);
    }

    public class FinCopyMessageClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT096.U0002;
        }
      }

      internal FinCopyMessageClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }
  }
}
